package com.springboot.demo.module.domain;

import com.springboot.demo.core.constant.CodeMsg;
import lombok.Data;

import java.util.HashMap;
import java.util.Map;

import static com.springboot.demo.core.constant.Constants.SUCCESS;

/**
 * 封装返回值
 *
 * @author Francis
 * @version 1.0
 * @date 2019-02-24 11:28
 */
@Data
public class BaseResult {


    /**
     * 对外调用 -- 标准Ajax返回
     * @param code
     * @param data
     * @param message
     * @return
     */
    public static Map<String,Object> ajaxReturn(Integer code, String message, Object data){
        Map<String,Object> jsonMap = new HashMap<>();
        jsonMap.put("code", code);
        jsonMap.put("msg", message);
        jsonMap.put("payload", data);

        return jsonMap;
    }


    /**
     * 对外调用 -- 异常时返回
     * @param codeMsg
     * @return
     */
    public static Map<String,Object> ajaxReturnError(CodeMsg codeMsg){
        Map<String,Object> jsonMap = new HashMap<>();
        jsonMap.put("code", codeMsg.getCode());
        jsonMap.put("payload", null);
        jsonMap.put("msg", codeMsg.getMsg());

        return jsonMap;
    }


    /**
     * 对外调用 -- 正确时返回
     * @param object
     * @return
     */
    public static Map<String,Object> ajaxReturnSuccess(Object object){
        Map<String,Object> jsonMap = new HashMap<>();
        jsonMap.put("code", SUCCESS);
        jsonMap.put("payload", object);
        jsonMap.put("msg", "操作成功！");

        return jsonMap;
    }

}
